/**
 * 错误处理中间件
 * 提供统一的错误响应格式
 */

// 自定义错误响应类
class ErrorResponse extends Error {
    constructor(message, statusCode) {
        super(message);
        this.statusCode = statusCode;
    }
}

// 错误处理中间件
const errorHandler = (err, req, res, next) => {
    let error = { ...err };
    error.message = err.message;
    
    // 记录错误
    console.error(err);
    
    // 发送响应
    res.status(error.statusCode || 500).json({
        success: false,
        message: error.message || '服务器内部错误',
        stack: process.env.NODE_ENV === 'development' ? err.stack : undefined
    });
};

module.exports = {
    ErrorResponse,
    errorHandler
}; 